ass Solution {
public:
    vector<int> kWeakestRows(vector<vector<int>>& mat, int k) {
        //1. 军人多就强 2. 前面相等的话 行数大强
        //返回最弱到最强的k个
        map<int,int> find_mp;//前面是战斗力 后面是人数
        vector<int> find_vt;
        for(int i=0;i<mat.size();i++)
        {
            int count=0;
            for(int j=0;j<mat[i].size();j++)
            {
                if(mat[i][j]==1)
                count++;
            }
            find_mp[count]++;
            find_vt.push_back(count);//刚好对应的行数的值
        }
        vector<int> ret;
        auto it = find_mp.begin();
        while(k--)
        {
            if(it->second==1)
            {
                for(int i=0;i<find_vt.size();i++)
                {
                    if(find_vt[i]==it->first)
                    {
                        ret.push_back(i);
                        find_mp[it->first]--;
                        find_vt[i]=-1;
                        it++;
                        break;
                    }
                }
            }
            else if(it->second>1)//>1
            {
                for(int i=0;i<find_vt.size();i++)
                {
                    if(find_vt[i]==it->first)
                    {
                        ret.push_back(i);
                        find_vt[i] = -1;//下次不能找了
                        find_mp[it->first]--;
                        break;
                    }
                }
            }
        }
        return ret;
    }
};
